The Inventor is aware that current applications suitable for real-time video broadcasting in a server/client network environment having multiple content channels, each at potentially multiple bit rates, require the ability of the clients to switch seamlessly and quickly between channels and the bit rates. The advent of using digitally encoded video streams has created inherent problems in providing these qualities. The existing switching solutions cater for high bit rate conditions defined as those where the delivery channel average bit rate available for each client is greater than that of the stream being delivered. These solutions cannot provide guaranteed fast switching at low bit rates without disruption to the video flow at the client.
The Inventor is aware that compressed video streams are typically made up of sequences of consecutive frames divided into groups of pictures (GOP). The GOP consists of an I-frame, independent of other previous frames, followed by one or more P-frames or B-frames that are predicted from surrounding frames within the same group. For the same visual quality, I-frames typically require upward of three times the number of bits than those required by P-frames or B-frames. Switching between statistically dissimilar streams, such as when “channel hopping”, or entering a stream for the first time, must occur on an I-frame. P-frame switching requires a matching prediction reference at a decoder or client. The prediction reference is a frame stored internally to the encoder and is required to be an exact representation of the output of the decoder. If switching is done on a P-frame without matching references, then the accumulated mismatch resulting from the incorrect reference produces visual artefacts at the decoder. This is commonly referred to as drift error.
The Inventor is also aware of the practice of switching between similar streams where one stream is only a different average bit rate version of the other stream, but otherwise from the same original video source, utilising SI-frames or SP-frames (S-frames). These are bridging frames between the two streams and seek to encode the differences between the current stream and the destination stream to ensure close matching prediction references to reduce the drift error. However, these bridging frames also may generate significantly more bits than the standard P-frames and, furthermore, every bridging frame is required to be a unique S-frame.
The frequency of the I/S-frames in the stream determines the switching points. In other words, a destination channel can be switched on an I-frame or immediately after receipt of an S-frame so that subsequent P-frames have a matching internal reference frame. Thus, a stream having a high frequency of I/S-frames has more potential switching points, at the cost of an increased average bit rate which is only tolerable in channels supporting high average bit rates
For the purposes of this specification, a low bit rate stream or channel may be defined having sufficient bandwidth only to sustain P-frames and, at best, a few or low quality I-frames in the order of thousands of frames apart (minutes in time). This implies no or a very limited number of natural switching points. Increasing the frequency of I/S-frames results in an increased bit cost which potentially cannot be sustained in low bit rate channels, causing disruption (not seamless) to the video service where re-buffering at the decoder is required.
To provide a fast, seamless low bit rate service where the switching time from one stream to another is both short and deterministic requires the period of I-frames (for dissimilar streams) or S-frames (for similar streams) to be in the order of less than 1 s (second). Thus, for any switch from one channel to another, the period of disruption will be less than 1 s (on average 0.5 s), until the next I-frame or S-frame is received and the following P-frames have a sufficiently matching reference with which to be decoded without noticeable drift error.
The problem which the Inventor has identified is to switch randomly between two arbitrary (similar or dissimilar) encoded video streams within a short time interval at any (low or high) bit rate without disrupting the frame rate or introducing noticeable long term drift errors. The Inventor therefore wishes to overcome or at least minimise this problem.